package com.dingding.activity.core.activity.service;

import com.dingding.facde.activity.enums.ActivityEnum.CouponStatus;

/**
 * 
 * @Description: 优惠券业务
 * 
 * 优惠券业务必须依赖于活动
 * 
 * @author CHEHUANBO
 * @date 2016年12月6日
 * @version 2.6.2
 * 
 */
public interface ICouponService {
	
	
	
	/**
	 * 
	 * @Description: 发放优惠券
	 * 
	 * 注意，此功能只能依赖活动发放，不可单独使用
	 * 
	 * @param activityId 活动ID
	 * @param userId 用户ID
	 * @return boolean true 成功 false 失败
	 * @author CHEHUANBO
	 * @version V2.6.2
	 * 
	 */
	public boolean grantCoupon(String activityId, String userId);
	
	
	
	/**
	 * 
	 * @Description: 添加优惠券发券记录
	 * @param activityId 活动ID
	 * @param userId 用户ID
	 * @param couponId 优惠券ID
	 * @author CHEHUANBO
	 * @version V2.6.2
	 * 
	 */
	public void addCouponGrantRecord(String activityId, String userId, int couponId);
	
	
	/**
	 * 
	 * @Description: 验证当前活动关联的优惠券是否已经发放完毕
	 * @param activityId 活动Id
	 * @param cityNo 城市编号
	 * @return int 1: 优惠券发放完毕 2:优惠券已结束
	 * @author CHEHUANBO
	 * @version V2.6.2
	 * 
	 */
	public CouponStatus isReceiveCouponByActivityId(String activityId,String cityNo);
	
	
	/**
	 * 
	 * @Description: 验证用户是否已经领取过当前优惠券
	 * @param userId 用户ID
	 * @param activityId 活动ID
	 * @author CHEHUANBO
	 * @version V2.6.2 
	 * 
	 */
	public boolean isGrantCoupon(String userId,String activityId);
	
	

}
